System monitor

ABSTRACT

At least some aspects of the disclosure provide for a system. In at least some examples, the system includes a microcontroller, an energy storage element, a monitoring circuit, and a communication bridge. The monitoring circuit is coupled to the energy storage element and configured to determine whether a fault associated with the energy storage element is present, generate an indication of the fault when the fault with the energy storage element is present, and transmit the indication of the fault. The communication bridge is configured to receive the indication of the fault and assert a fault signal and transmit the fault signal to the microcontroller.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional PatentApplication No. 62/807,145, which was filed Feb. 18, 2019 and is titled“Automotive Battery Monitor System With Auto Wakeup On System Fault.”The present application further claims priority to U.S. ProvisionalPatent Application No. 62/903,436, which was filed Sep. 20, 2019 and istitled “Automotive Battery Pack Monitor.” Both of these provisionalapplications are hereby incorporated herein by reference in theirentirety.

BACKGROUND

In some systems, it is advantageous to monitor certain conditions,statuses, or other data points in the system. The monitoring allows forsystem performance and/or analytics reporting, enforcement of safetymechanisms (e.g., such as turn-off or forced reduction in performance ifmonitored conditions exceed permitted thresholds), trimming or tuning ofsystem performance, etc. Some approaches to this monitoring includeconstant polling to obtain data. However, this approach can be expensivefrom perspectives of both communication bandwidth consumption and powerconsumption and can result in an extended fault detection time interval.Other approaches to this monitoring include the inclusion of dedicatedfault detection hardware that is daisy chained between devices so that afault signal is forwarded to a controller through the daisy chain.However, this approach can also be expensive due to a requirement foradditional components and couplings and due to power consumed, becauseat least some implementations of this approach prevent the controllerfrom being placed in a low-power mode (e.g., idle or shutdown).

SUMMARY

At least some aspects of the disclosure provide for a circuit. In atleast some examples, the circuit includes a microcontroller and acommunication bridge. The communication bridge is coupled to themicrocontroller and configured to implement a state machine. The statemachine comprises a first state configured to receive a data framecomprising data and a second state configured to determine whether asystem fault is indicated in the data frame. The first state transitionsto the second state when the data frame is received. The state machinefurther comprises a third state configured to assert a fault signal whenthe system fault is indicated in the data frame. The second statetransitions to the third state when the system fault is indicated in thedata frame. The state machine further comprises a fourth stateconfigured to transmit the data from the data frame to themicrocontroller. The third state transitions to the fourth state afterasserting the fault signal.

Other aspects of the disclosure provide for a circuit. In at least someexamples, the circuit includes a register and a monitoring circuitcoupled to the register and configured to implement a state machine. Thestate machine comprises a first state configured to generate a dataframe including at least some data from the register and a second stateconfigured to determine a system fault status. The first statetransitions to the second state after generating the data frame. Thestate machine further comprises a third state configured to set a faultstatus indication of the data frame when a fault exists in the system.The second state transitions to the third state when the monitoringcircuit detects a fault. The state machine further comprises a fourthstate configured to transmit the data frame to a next device. The secondstate transitions to the fourth state when the monitoring circuit doesnot detect a fault. The third state transitions to the fourth stateafter setting the fault status indication of the data frame.

Other aspects of the disclosure provide for a system. In at least someexamples, the system includes a microcontroller, an energy storageelement, a monitoring circuit, and a communication bridge. Themonitoring circuit is coupled to the energy storage element andconfigured to determine whether a fault associated with the energystorage element is present, generate an indication of the fault when thefault with the energy storage element is present, and transmit theindication of the fault. The communication bridge is configured toreceive the indication of the fault and assert a fault signal andtransmit the fault signal to the microcontroller.

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of various examples, reference will now bemade to the accompanying drawings in which:

FIG. 1 shows a block diagram of an illustrative system in accordancewith various examples;

FIG. 2 shows a schematic diagram of an illustrative data frame inaccordance with various examples;

FIG. 3 shows a timing diagram of signal generation in a system inaccordance with various examples;

FIG. 4 shows a flowchart of an illustrative method in accordance withvarious examples;

FIG. 5 shows a flowchart of an illustrative method in accordance withvarious examples;

FIG. 6 shows a flowchart of an illustrative method in accordance withvarious examples;

FIG. 7 shows a flowchart of an illustrative method in accordance withvarious examples;

FIG. 8 is a diagram of an illustrative state machine in accordance withvarious examples;

FIG. 9 is a diagram of an illustrative state machine in accordance withvarious examples;

FIG. 10 is a diagram of an illustrative state machine in accordance withvarious examples;

FIG. 11 is a diagram of an illustrative state machine in accordance withvarious examples; and

FIG. 12 is a diagram of an illustrative state machine in accordance withvarious examples.

DETAILED DESCRIPTION

In various systems, including energy storage systems such as those foundin hybrid or electric vehicles, it is sometimes advantageous orpreferred to monitor a status of the energy storage cells (e.g.,batteries). For example, monitoring the batteries can provide anindication of a voltage of the batteries, temperatures, the existence ofa fault, etc. This information can then in turn be used for decisionmaking regarding the energy storage system, such as shutting down thesystem, reducing performance of the system, bypassing portions of thesystem, generating a notice that the system requires service, etc.

Various monitoring approaches or techniques exist that enable amicrocontroller to obtain battery information, but at least some ofthese approaches can include undesirable elements as discussed elsewhereherein. At least some aspects of the present disclosure provide for asystem monitor that conveys fault information without requiring constantpolling or dedicated fault output interfaces, as discussed elsewhereherein. In at least one implementation, communication exists between acontroller, such as a microcontroller, microprocessor, or otherprocessing device and one or more monitor units. This communicationincludes one or more pieces of data, in at least some examples arrangedin data frames, each of which includes a plurality of bytes of data.

Sometimes, these frames of data include data bits that are ignored,unnecessary, redundant, or otherwise unused. For example, in someimplementations each byte of the data frame follows a same generalformat that includes a start of frame (SOF) data bit. For the first byteappearing in a data frame, that SOF data bit carries significance andindicates to a device receiving the data frame that the byte having aset SOF data bit is the first byte of the data frame. However, the SOFdata bits of subsequent bytes of the data frame are then unused withrespect to containing meaningful data and are unutilized overhead. Inthese examples, at least some implementations of the system monitor ofthe present disclosure repurpose the SOF data bit of at least some ofthe subsequent bytes of the data frame to indicate a fault status in asystem. For example, a value of the SOF data bit of one byte, two bytes,three bytes, etc., may indicate the fault status. In at least someexamples, reuse of the SOF data bit as described herein has certainbenefits with regard to backward compatibility (e.g., not requiringsupport for a different length data frame) that make use of the SOF databit advantageous over other data bits. For example, repurposing ofotherwise unused SOF data bits enables support for fault detection andreporting/notification in existing communication data frames withoutadding additional data bits and/or bytes to the data frame for thepurpose of performing the fault detection and/or reporting/notification.However, while the SOF data bit is described herein as being repurposedfor at least some bytes of a data frame, the present disclosure is notlimited to the SOF data bit of any particular bytes of the data frame orto a SOF data bit. Instead, any suitable bit(s) of any suitable byte(s)of a data frame may be repurposed to indicate a fault status in asystem, or, alternatively, no data bits may be repurposed and new databit(s) and/or byte(s) may be added to support fault reportingfunctionality.

In at least some implementations, a controller communicates (e.g., acommand frame) with a first monitor, which communicates with a secondmonitor, and so forth until a final monitor in a daisy chain of monitorscommunicates back to the controller. The communication from the monitorback to the controller (e.g., a response frame), in at least someexamples, follows the same communication links in a reverse order thatthe communication from the controller to the monitor followed. In otherexamples, the controller communicates with a monitor along the daisychain of monitors without communication back to the controller (e.g.,such as when no response to the controller is necessary). As a dataframe passes through each of the monitors of the system, the monitor hasan opportunity to alter the data frame, such as to indicate a fault inthat monitor. For example, regardless of whether a data frame isaddressed to a particular monitor, when the data frame passes throughthe monitor either from the controller to a monitor to which the dataframe is addressed, or from the monitor from which a data frameoriginates for transmission back to the controller, a fault status canbe indicated in the data frame. In this way, the fault status can beindicated in a command frame or in a response frame (each of which iscollectively referred to hereinafter as a data frame). When indicated inthe command frame, in at least some examples, a monitor in the daisychain copies the indication to a response frame. Thus, when thecontroller receives the data frame, the controller becomes altered tothe existence of a fault in the system. In at least some examples, thefault indication included in the SOF data bit only indicates anexistence of a fault in the system and not a nature of the fault or alocation of the fault. In other examples of a fault monitor system, suchas when a fault data byte is added to the data frame, other informationmay be provided, such as a device address of a monitor reporting thefault, a nature or type of the fault, etc.

As mentioned above, a value of the SOF data bit of one byte, two bytes,three bytes, etc., may indicate the fault status. For example, in someimplementations a monitor reporting a fault sets the SOF data bit of onebyte of the data frame to a logical 1. In other examples, the monitorprovides data redundancy by setting the SOF data bit of more than onebyte to a logical 1. In this way, if a portion of the data frameincluding an SOF data bit set to indicate a fault is corrupted prior toreceipt by the controller, the controller retains an ability todetermine the existence of the fault through a redundantly set SOF databit of another byte of the data frame. Alternatively, which byte has aSOF data bit set to a logical 1 may be determined by a type of faultbeing reported (e.g., a temperature fault reported via a SOF data bit ofone byte, a voltage fault reported via a SOF data bit of another byte,etc.).

In at least some implementations, a communication bridge exists betweenthe monitors and the controller. The communication bridge, in someexamples, receives and processes the data frame from the monitors,generating a fault output signal when a SOF data bit of the data frameindicates an existence of a fault. The fault output signal is providedto the controller by the bridge device.

In some examples, when the bridge device outputs the fault outputsignal, the controller is in a low-power state such that the controlleris idle, shutdown, or otherwise in a state that prevents the controllerfrom receiving the fault output signal. In such examples, thecommunication bridge further generates and outputs a trigger signal. Thetrigger signal, in at least some examples, causes the controller to exitthe low-power state. The trigger signal causes the controller to exitthe low-power state, in some examples, by causing a power managementcomponent to provide power to the controller. In other examples, thetrigger signal is received by the controller and causes the controllerto exit the low-power state. When the controller exits the low-powerstate, the controller receives the fault output signal that was outputby the communication bridge. Alternatively, in at least some examplessuch as when the controller is in the low-power state, the bridgeoutputs a heartbeat signal in place of the data frame. The heartbeatsignal is output, in some examples, periodically, such as about every400 milliseconds. The heartbeat signal progresses through the daisychain of monitors and back to the communication bridge. For example, amonitor receives the heartbeat tone and generates another heartbeat tonethat is forwarded to an upstream monitor in the daisy chain until afinal monitor in the daisy chain transmits the heartbeat tone to thecommunication bridge. Conversely, if one of the monitors does notreceive the heartbeat tone, does not receive the heartbeat tone within apredetermined or expected period of time, or detects a fault, thatrespective monitor generates and transmits a fault tone in place of theheartbeat tone. If the communication bridge does not receive theheartbeat tones for a predetermined period of time (e.g., such as about1 second, indicating that two heartbeat tones have been missed), thecommunication bridge determines that a fault exists and outputs thefault output signal and/or the trigger signal. Similarly, if thecommunication bridge receives a fault tone instead of a heartbeat tone,the communication bridge determines that a fault exists and outputs thefault output signal and/or the trigger signal.

In at least some examples, a management unit (e.g., that includes thecontroller and/or the bridge) transmits the data frame to a monitorcoupled to the management unit. The data frame is forwarded through oneor more monitors via a daisy chain until it reaches a last monitor inthe daisy chain, or a monitor to which the data frame is addressed. Inat least some examples, a response frame is then transmitted back to themanagement unit from one of the monitors in the daisy chain. However,sometimes communication couplings can be damaged or break. In some ofthe alternative approaches to system monitoring, this can entirelyprevent any future monitoring until the damaged coupling is repaired orreplaced, if either of those options is available. However, the systemmonitor of the present disclosure, when a break is detected, retains anability to communicate and detect faults. For example, in at least oneimplementation, the management unit transmits two data frames—one to thefirst monitor in a daisy chain and one to the last monitor in the daisychain. The data frames then progress through the daisy chain of monitorsfrom one or both ends of the daisy chain until reaching the broken ordamaged coupling. In this way, the management unit retains an ability tocommunicate with, and detect faults in, a system despite damage to acommunication coupling in the system. In at least some examples, afterreceiving the fault output signal, the controller polls the monitors(e.g., sends data frames addressed to each monitor requesting data fromthe specifically addressed monitor) to learn more information about thefault, such as a location of the fault, nature of the fault, etc.

Turning now to FIG. 1, a block diagram of an illustrative system 100 isshown. In at least some examples, the system 100 is representative of anenergy storage system. In other examples, the system 100 isrepresentative of at least a portion of a hybrid or electric vehicle(whether land, air, or sea and manner, semi-autonomous, orfully-autonomous), such as a sub-system of the hybrid or electricvehicle. For example, at least some implementations of the system 100are representative of a powertrain sub-system of a vehicle and/or apower sub-system of a vehicle. In yet other examples, the system 100 isrepresentative of any system in which one or more components aremonitored by one or more monitors that communicate with a managementunit and/or controller. The components being monitored may be batteries,sensors, circuits, circuit components, articulating components, etc., orany combinations thereof. Moreover, in some examples, the system 100monitors multiple different types of components (e.g., the system 100may monitor both batteries and sensors, etc.).

The system 100 includes, in some examples, a management unit 102, amonitoring unit 104, and a monitoring unit 106. The system 100 furtherincludes, or is configured to couple to, a component 108, a component110, a component 112, and a component 114. In some examples, each of thecomponent 108, the component 110, the component 112, and the component114 are energy storage elements, such as batteries. In other examples,any one or more of the component 108, the component 110, the component112, or the component 114 are any other suitable component beingmonitored by the system 100. While the system 100 includes only twomonitoring units, each monitoring two components, in various examples,the system 100 includes any number of monitoring units coupled together,each of which monitors any number of components.

The management unit 102, in some examples, includes a communicationbridge 116, a microcontroller 118, and a power management component 120.In at least some examples, the power management component 120 controlsthe providing of power to the microcontroller 118 and, in some examples,the communication bridge 116. For example, the power managementcomponent 120 couples to a node 121 at which an input voltage (VIN) ispresent and further couples to a VIN terminal of the communicationbridge 116. The communication bridge 116 includes a first communicationinterface (interfaces not expressly depicted) configured to couple tothe monitoring unit 104 and a second communication interface configuredto couple to the monitoring unit 106. The communication bridge 116further includes one or more couplings with the microcontroller 118 tofacilitate data flow between the communication bridge 116 and themicrocontroller 118. In various examples, one or more components, suchas isolation components, are coupled to one or more ends of thecouplings within the system 100.

Data transmitted between the communication bridge 116 and themicrocontroller 118 can include the fault output signal, as discussedelsewhere herein, data for inclusion in a data frame to be output by thecommunication bridge 116, data received by the communication bridge 116in a data frame, or any other suitable data. In at least some examples,the communication bridge 116 is further coupled to the power managementcomponent 120. For example, the communication bridge 116 is coupled toan enable input of the power management component 120 such that anasserted output signal of the communication bridge 116 causes the powermanagement component 120 to become enabled and provide power to themicrocontroller 118.

The communication bridge 116, in at least some examples, includes one ormore components capable of, or suitable for, performing logicaloperations. For example, at least some implementations of thecommunication bridge 116 include components suitable for performinglogical operations to implement a state machine. Accordingly, in atleast some examples, the communication bridge 116 is a state machinecircuit that implements one or more state machines. In at least someexamples, the communication bridge 116 is alternatively, oradditionally, referred to as an integrated circuit. Variousimplementations of the communication bridge 116 include additionalfunctionality not described herein, where that additional functionalityis controlled and/or implemented through one or more additional statemachines. In at least some examples, the communication bridge 116implements a state machine to perform functions of the presentdisclosure, such as detection, in a received data frame, of anindication of a fault and generation of the fault output signal based onsuch detection. The state machine, or alternatively another statemachine, performs other functions of the present disclosure, such asoutput of, and monitoring for, a heartbeat signal and generation of thefault output signal and trigger signal based on a predetermined numberof heartbeat signals not being detected or a heartbeat signal not beingdetected for a predetermined period of time.

The monitoring unit 104, in at least some examples, includes amonitoring circuit 122, a storage element 123, and a monitoring circuit124. The monitoring unit 106, in at least some examples, includes amonitoring circuit 126, a storage element 127, and a monitoring circuit128. While each monitoring unit of the system 100 is illustrated asincluding two monitoring circuits, in in at least some examples, one ormore of the monitoring units includes fewer, or more, monitoringcircuits. Additionally, while each monitoring unit of the system 100 isillustrated as including one storage element, in other examples, eithermonitoring unit may include additional storage elements. Additionally,in at least some examples, the storage elements may be implemented ascomponents of a respective monitoring circuit. In at least someexamples, the storage element 123 and the storage element 127 eachcomprise a plurality of registers configured to store data. Themonitoring circuit 122 and/or the monitoring circuit 124 interact withthe storage element 123 to read data from, or write data to, the storageelement 123. The monitoring circuit 126 and/or the monitoring circuit128 interact with the storage element 127 to read data from, or writedata to, the storage element 127.

The monitoring circuit 122 is coupled to the communication bridge 116,the monitoring circuit 124, and the storage element 123. The monitoringcircuit 122 is further coupled to the component 108 and configured tomonitor the component 108. The monitoring circuit 124 is coupled to themonitoring circuit 122, the monitoring circuit 126, and the storageelement 123. The monitoring circuit 124 is further coupled to thecomponent 110 and configured to monitor the component 110. Themonitoring circuit 126 is coupled to the monitoring circuit 124, themonitoring circuit 128, and the storage element 127. The monitoringcircuit 126 is further coupled to the component 112 and configured tomonitor the component 112. The monitoring circuit 128 is coupled to themonitoring circuit 126, the communication bridge 116, and the storageelement 127. The monitoring circuit 128 is further coupled to thecomponent 114 and configured to monitor the component 114. Additionally,while at least some couplings in the system 100 are illustrated astwo-wire couplings (e.g., such as couplings between the management unit102, the monitoring unit 104, and the monitoring unit 106, and withinthe monitoring unit 104 and the monitoring unit 106), in other examples,the couplings are single-wire. Further, in at least some examples, oneor more additional components are coupled in-line between a respectivemonitoring circuit and the component to which the monitoring circuit iscoupled.

In a first example of operation of the system 100, the communicationbridge 116 outputs a data frame to the monitoring circuit 122. The dataframe, in at least some examples, includes data received by thecommunication bridge 116 from the microcontroller 118. For example, thedata frame includes a device address of one of the monitoring circuit122, the monitoring circuit 124, the monitoring circuit 126, or themonitoring circuit 128. In at least some examples, the data framefurther includes data provided by the microcontroller 118 for the one ofthe monitoring circuit 122, the monitoring circuit 124, the monitoringcircuit 126, or the monitoring circuit 128 to which the data frame isaddressed. The data frame progresses in a sequential manner through thedaisy chain of couplings that create a closed loop beginning and endingat the communication bridge 116. For example, the data frame progressesfrom the communication bridge 116 to the monitoring circuit 122, fromthe monitoring circuit 122 to the monitoring circuit 124, from themonitoring circuit 124 to the monitoring circuit 126, from themonitoring circuit 126 to the monitoring circuit 128, and from themonitoring circuit 128 to the communication bridge 116.

As the data frame (e.g., either a command frame or a response frame)passes through the monitoring circuit 122, the monitoring circuit 124,the monitoring circuit 126, and the monitoring circuit 128, any one ormore of the monitoring circuit 122, the monitoring circuit 124, themonitoring circuit 126, or the monitoring circuit 128 may set one ormore data bits of the data frame to indicate a presence of a fault. Thefault is, in some examples, a fault with the component 108, thecomponent 110, the component 112, and/or the component 114. In otherexamples, the fault is a fault with the monitoring circuit 124, themonitoring circuit 126, and/or the monitoring circuit 128. In at leastsome examples, one or more SOF data bits of one or more bytes other thana first byte of the data frame are set to a logical 1 value to indicatethe presence of a fault. In at least some examples, the monitoringcircuit 122, the monitoring circuit 124, the monitoring circuit 126,and/or the monitoring circuit 128 sets the data bit(s) to indicate thepresence of the fault by performing a logical OR operation between thedata bit(s) and a value of logical 1.

When the data frame is received by the communication bridge 116 from themonitoring circuit 128, in at least some examples, the communicationbridge 116 examines the data frame to determine whether a fault existsin the system 100. In some examples, the communication bridge 116determines that a fault exists in the system 100 based on a single databit being set to a logical 1. In other examples, the communicationbridge 116 determines that a fault exists in the system 100 based onmultiple data bits being set to a logical 1. In yet other examples, thecommunication bridge 116 determines that a fault exists in the system100 based on a majority of a particular set of data bits being set to alogical 1 (e.g., a majority of SOF data bits of a particular set ofbytes of the data frame being set to logical 1). When the communicationbridge 116 determines that a fault exists in the system 100 based on avalue of a data bit of the data frame, in at least some examples, thecommunication bridge 116 outputs the fault output signal indicatingpresence of a fault to the microcontroller 118. In some examples, thecommunication bridge 116 further outputs additional data received in thedata frame to the microcontroller 118. In at least some examples, themicrocontroller 118 takes one or more actions based on the fault outputsignal indicating the presence of a fault in the system 100. Forexample, the microcontroller 118 shuts down, or outputs a signal thatcauses another component (not shown) to shut down, at least a portion ofthe system 100, modifies a usage of a circuit, device, or component fromwhich the fault originated, limits power consumption of the system 100or another device (not shown) coupled to the system 100, generates andoutputs an alert or message warning of the fault, or takes any othersuitable action.

In a second example of operation of the system 100, the microcontroller118 is in a low-power state. When the microcontroller 118 is in thelow-power state, the microcontroller 118 does not send data to thecommunication bridge 116 to enable the communication bridge 116 togenerate and/or output the data frame to the monitoring circuit 122.However, faults can still occur in the system 100 when themicrocontroller 118 is in the low-power mode. In at least some examples,it is undesirable and/or potentially detrimental to the system 100 towait until the microcontroller 118 ends a predetermined period of timein the low-power mode for the microcontroller 118 to learn of thepresence of the fault. Accordingly, when the microcontroller 118 is inthe low-power state, the communication bridge 116 generates and outputsa heartbeat tone to the monitoring circuit 122. The heartbeat toneprogresses in a sequential manner through the daisy chain of couplingsthat create the closed loop beginning and ending at the communicationbridge 116. For example, the heartbeat tone progresses from thecommunication bridge 116 to the monitoring circuit 122, from themonitoring circuit 122 to the monitoring circuit 124, from themonitoring circuit 124 to the monitoring circuit 126, from themonitoring circuit 126 to the monitoring circuit 128, and from themonitoring circuit 128 to the communication bridge 116. If any of themonitoring circuit 122, monitoring circuit 124, monitoring circuit 126,or monitoring circuit 128 detects the presence of a fault in the system100, that respective monitoring circuit 122, monitoring circuit 124,monitoring circuit 126, or monitoring circuit 128 does not transmit aheartbeat tone. Instead, that respective monitoring circuit 122,monitoring circuit 124, monitoring circuit 126, or monitoring circuit128 generates and outputs a fault tone. When the communication bridge116 receives the fault tone instead of the heartbeat tone, thecommunication bridge 116 determines that a fault exists in the system100.

Alternatively, if the communication bridge 116 does not receive aheartbeat tone for a predetermined period of time (e.g., such as about 1second when a heartbeat tone is transmitted about every 400milliseconds), the communication bridge 116 determines that a faultexists in the system 100. In at least some examples, the heartbeat toneis a signal having a predetermined pattern of pulses. Similarly, thefault tone is another signal having a different predetermined pattern ofpulses. In at least some examples, the fault tone is the same for eachof the monitoring circuit 122, monitoring circuit 124, monitoringcircuit 126, and monitoring circuit 128. In other examples, one or moreof the monitoring circuit 122, monitoring circuit 124, monitoringcircuit 126, or monitoring circuit 128 is configured to generate andoutput a unique fault tone. In yet other examples, the predeterminedpattern of pulses of the fault tone is unique to a type of faultdetected.

In at least some examples, the communication bridge 116 is also in alow-power state in which the communication bridge 116 is powered butasleep (e.g., in a sleep mode). In such examples, the power managementcomponent 120 may further be in a low-power state and asleep. In atleast some examples, the communication bridge 116 wakes from the sleepmode when the communication bridge 116 is asleep and receives a faulttone. When the communication bridge 116 wakes from the sleep mode, thecommunication bridge 116 generates and outputs the fault output signal.If the communication bridge 116 is instead in a shutdown mode (e.g., inwhich less power is consumed than when in the sleep mode), thecommunication bridge 116 wakes from the shutdown mode and validates thefault tone. If the fault tone is validated, the communication bridge 116generates and outputs the fault output signal. Similarly, the powermanagement component 120 receiving the trigger signal from thecommunication bridge 116 may wake the power management component 120 andreturn the power management component 120 to normal operation, supplyingpower to the microcontroller 118 to bring the microcontroller 118 out ofthe low-power state or bring the microcontroller 118 back from ano-power state or off mode). In such examples when the communicationbridge 116, the microcontroller 118, and the power management component120 are each in low-power states, it is sometimes still desirable tolearn of a fault in the system 100 in a timely manner (e.g., withoutwaiting for a scheduled periodic exit from the low-power states). Insuch examples, the monitoring circuit 122, the monitoring circuit 124,the monitoring circuit 126, and the monitoring circuit 128 are capableof generating a fault tone and outputting the fault tone. The fault tonepropagates back to the communication bridge 116, through the daisy chainof the monitoring circuit 122, the monitoring circuit 124, themonitoring circuit 126, and the monitoring circuit 128. When thecommunication bridge 116 receives the fault tone and is in the sleepmode, the communication bridge 116 wakes substantially as describedabove when receiving a fault tone in response to transmitting aheartbeat tone while the microcontroller 118 is in the low-power state.

When the communication bridge 116 determines that a fault exists in thesystem 100, either through receipt of the fault tone or a lack ofreceipt of the heartbeat tone for a predetermined period of time, thecommunication bridge 116 generates and outputs the fault output signalindicating the presence of the fault. However, because themicrocontroller 118 is in the low-power state, the microcontroller 118does not receive the fault output signal. To remove the microcontroller118 from the low-power state, in at least some examples, thecommunication bridge 116 generates and outputs the trigger signal. Thetrigger signal, in at least some examples, is an enable or interruptsignal that causes the power management component 120 to provide powerto the microcontroller 118 and/or otherwise cause the microcontroller118 to exit the low-power state. When the microcontroller 118 exits thelow-power state, the microcontroller 118 returns to operationsubstantially the same as discussed above with respect to the firstexample of operation of the system 100. In this way, when themicrocontroller 118 exits the low-power state, the microcontroller 118receives the fault output signal indicating the presence of the fault inthe system 100 and takes one or more actions based on the presence ofthe fault.

In at least some examples, the first example of operation of the system100 and the second example of operation of the system 100 arecomplementary such that they are implemented simultaneously. Forexample, a communication bridge 116 that is capable of determining thata fault exists in the system 100 when the microcontroller 118 is in thelow-power state is further capable of determining that a fault exists inthe system 100 when the microcontroller 118 is not in the low-powerstate. In at least some examples, the communication bridge 116 achievesthis functionality through the implementation and/or execution ofmultiple state machines running concurrently or non-concurrently.

While the present disclosure generally describes the communicationbridge 116 as transmitting to the monitoring circuit 122 and receivingfrom the monitoring circuit 128, communication in the opposite directionis also possible. In such an implementation, the communication bridge116 will transmit to the monitoring circuit 128 and receive from themonitoring circuit 122. Furthermore, in at least some examples, thecommunication bridge 116 transmits to both the monitoring circuit 122and the monitoring circuit 128 and receives from both the monitoringcircuit 122 and the monitoring circuit 128. In some examples, thetransmitting to both the monitoring circuit 122 and the monitoringcircuit 128 is performed substantially concurrently. In other examples,the transmitting to both the monitoring circuit 122 and the monitoringcircuit 128 is performed consecutively. For example, if a communicationcoupling becomes unusable in the daisy chain between the monitoringcircuit 122 and the monitoring circuit 128, the daisy chain is brokenand communication from the communication bridge 116 to all monitoringcircuits of the daisy chain is no longer possible through the daisychain. However, it is sometimes still desirable and/or advantageous tolearn of faults in the system 100. In such examples, the remainingcommunication couplings are utilized in a bidirectional manner. Forexample, the communication bridge 116 transmits to both the monitoringcircuit 122 and the monitoring circuit 128 and communication progressesthrough the daisy chain of devices until the unusable coupling of thedaisy chain is reached. At that point, the communication reverses courseand traverses back over the same couplings, but in the reversedirection, to return to the communication bridge 116 such that amonitoring device that received data from the communication bridge 116is also a same monitoring device that transmits data back to thecommunication bridge 116. In this way, an unusable coupling in a daisychain between the monitoring circuit 122, the monitoring circuit 124,the monitoring circuit 126, and the monitoring circuit 128 does notprevent the continued detection and reporting of faults in the system100.

Turning now to FIG. 2, a diagram of an illustrative data frame 200 isshown. In at least some examples, the data frame 200 is suitable forimplementation as the data frame discussed above with respect to thesystem 100 of FIG. 1. Accordingly, reference may be made to at leastsome components of the system 100 in describing the data frame 200.However, while the data frame 200 is illustrated and described as onepossible implementation for the data frame discussed with respect to thesystem 100, the data frame 200 is not exclusive in its suitability foruse in the system 100. Other data frame formats, or similar data frameswith different byte formats, may also be suitable for implementation asthe data frame discussed with respect to the system 100 and such otherdata frames and/or data bytes are included within the scope of thepresent disclosure. In at least some examples, the data frame 200 isrepresentative of a format of a command frame and a response frame, asdiscussed herein.

The data frame 200 includes a plurality of bytes 202A, 202B, 202C, 202D,202E, and 202F. While the data frame 200 is illustrated as including sixbytes, in various examples, the data frame 200 includes any suitablenumber of bytes, such as more than, or fewer than, six bytes. In atleast some examples, the byte 202A is an initialization byte thatincludes general information regarding the data frame. In at least someexamples of the data frame 200, the byte 202A is a first byte of thedata frame 200 and a SOF data bit of the byte 202A being set to alogical 1 value indicates to a device receiving the data frame 200 thatthe data frame 200 is beginning. The byte 202B, in at least someexamples, is a device address byte. In at least some examples of thedata frame 200, the byte 202B is a second byte of the data frame 200.The byte 202B, in some examples, includes an address or other indicationof a device to which the data frame 200 is addressed. For example, inthe system 100 the byte 202B includes an address or other indication ofone of the monitoring circuit 122, the monitoring circuit 124, themonitoring circuit 126, or the monitoring circuit 128. In at least someexamples, a SOF data bit of the byte 202B is repurposed for use inindicating whether a fault exists in a system through which the dataframe 200 passes. The byte 202C, in some examples, includes an upperhalf (e.g., a most-significant 8 bits) of a register address. Theregister address is, in some examples, an address of a register of oneof the monitoring circuit 122, the monitoring circuit 124, themonitoring circuit 126, or the monitoring circuit 128 and instructs thatrespective monitoring circuit which register to write to and/or readfrom. In at least some examples of the data frame 200, the byte 202C isa third byte of the data frame 200. In at least some examples, a SOFdata bit of the byte 202C is repurposed for use in indicating whether afault exists in a system through which the data frame 200 passes. Thebyte 202D, in some examples, includes a lower half (e.g.,least-significant 8 bits) of the register address. In at least someexamples of the data frame 200, the byte 202D is a fourth byte of thedata frame 200. In at least some examples, a SOF data bit of the byte202D is repurposed for use in indicating whether a fault exists in asystem through which the data frame 200 passes.

The byte 202E, in some examples, is a data byte. The byte 202E, in atleast some examples, includes payload data being communicated via thedata frame 202. While only one data byte is illustrated, in at leastsome examples, the data frame includes a plurality of data bytes basedon a maximum amount of data transmittable in a single data frame 200.The byte 202F, in at least some examples, is a cyclic redundancy check(CRC) byte. The byte 202F, in at least some examples, is an errordetection byte that indicates whether the data frame 200 has becomecorrupted in transmission or is otherwise unreliable.

As discussed elsewhere herein, in at least some examples, after a devicereceives the SOF data bit of the byte 202A, a remainder of SOF data bitsin the data frame 200 are often unused. At least some of these otherwiseunused SOF data bits are repurposed for the fault detection of thepresent disclosure. In at least some examples, SOF data bits of one ormore of the byte 202B, byte 202C, byte 202D, and/or byte 202E arerepurposed for the fault detection of the present disclosure withoutrepurposing the SOF data bit of byte 202F or other data bytes (notshown) appearing in the data frame 200. In at least some examples, thisselection of one or more of one or more of the byte 202B, byte 202C,byte 202D, and/or byte 202E is made because a number of data bytes inthe data frame 200 may vary, leading to unpredictable positioning and/orquantity. Thus, at least some implementations of the fault detection ofthe present disclosure rely on usage of SOF data bits only of one ormore bytes which are included in each variation and/or implementation ofthe data frame 200.

Although the byte 202B, byte 202C, byte 202D, and byte 202E aredescribed as a “byte” which customarily includes eight data bits, atleast some of the byte 202B, byte 202C, byte 202D, and/or byte 202Einclude, or are associated with, additional data bits referred to asoverhead. For example, in at least one implementation, each of the byte202B, byte 202C, byte 202D, and/or byte 202E include about five databits of overhead data. For example, as illustrated in the callout of thebyte 202E, in at least some implementations, at least some of the byte202B, byte 202C, byte 202D, and/or byte 202E include a one-half bitPreamble, a two-bit SYNC pattern, the one-bit SOF data bit, a one-bitByte Error bit, and a one-half bit Postamble around an eight-bit Dataportion. Accordingly, as used herein the term byte includes eight bitsof data plus five bits of overhead data including at least a SOF databit. In at least some examples, the Data portion of the byte 202B, byte202C, byte 202D, and/or byte 202E is received by the communicationbridge 116 from the microcontroller 118 for command frames and isforwarded to the microcontroller 118 from the communication bridge 116for response frames.

Turning now to FIG. 3, a timing diagram 300 of signal generation in thesystem 100 is shown. In at least some examples, the timing diagram 300illustrates timing and signals associated with detection of a fault in asystem and reporting of the fault to a controller in a low-power state.In at least some examples, the timing diagram 300 is illustrative of atleast some signals present in the system 100 of FIG. 1. Accordingly,reference may be made to components and/or signals of the system 100 indescribing the timing diagram 300.

As illustrated by the timing diagram 300, when a monitoring circuitdetects a fault, the monitoring circuit outputs a fault tone and thefault tone propagates back to the communication bridge 116. Themonitoring circuit is any one of the monitoring circuit 122, themonitoring circuit 124, the monitoring circuit 126, or the monitoringcircuit 128. When the communication bridge 116 receives the faultsignal, in at least some examples, the communication bridge 116 is in alow-power or sleep mode and the fault signal operates as an interrupt towake the communication bridge 116. In other examples, the communicationbridge 116 is in an active state (e.g., the communication bridge istransmitting heartbeat signals). When the communication bridge 116receives the fault signal, the communication bridge 116 confirms thefault tone based on a pattern of pulses of the fault tone. When thecommunication bridge 116 confirms the fault tone as being valid, thecommunication bridge 116 sources current to a pin of the communicationbridge 116 at which the communication bridge 116 outputs the triggersignal (illustrated in FIG. 3 as INH) to the power management component120 and a pin at which the communication bridge 116 outputs the faultdetect signal (illustrated in FIG. 3 as FAULT). Sourcing the current tothe pin, in at least some examples, drives the pin high so that a valueof logical 1 is present at the pin, as shown by the timing diagram 300.

When INH is driven to a value of logical 1, the power managementcomponent 120 activates, sourcing power to the microcontroller 118 andcausing the microcontroller 118 to activate, exiting the low-powerstate. A state of a power supply to the microcontroller 118 isillustrated in FIG. 3 as MICROCONTROLLER POWER. When the microcontroller118 activates, the microcontroller 118 receives FAULT and determinesthat the fault is present in the system 100.

Turning now to FIG. 4, a flowchart of an illustrative method 400 offault detection is shown. In at least some examples, the method 400 isimplemented at least partially by the communication bridge 116 of thesystem 100 of FIG. 1. Accordingly, reference may be made to at leastsome components and/or signals of the system 100 in describing themethod 400. In at least some examples, the method 400 is a method forfault detection via a communication data frame. The fault detection isperformed, in at least some examples, without modifying a structure ofthe data frame. For example, the fault detection is performed in someimplementations without adding additional data bits and/or bytes to thedata frame for the purpose of performing the fault detection and/ornotification associated with the fault detection. In otherimplementations, one or more additional data bits and/or bytes are addedto the data frame to facilitate the fault detection having a greateramount of detail regarding a detected fault (e.g., a nature of thefault, a location or relative/approximate location of the fault, etc.).

At operation 402, data is received from the microcontroller 118. Thedata includes any one or more of a device address, a register address,or payload data. The device address, in at least some examples,indicates a monitoring circuit (e.g., one of the monitoring circuit 122,the monitoring circuit 124, the monitoring circuit 126, or themonitoring circuit 128) to which the microcontroller 118 wishes to sendthe payload data.

At operation 404, the communication bridge 116 packages the receiveddata into a data frame and transmits the data frame to the monitoringcircuit 122. Alternatively, in some examples the communication bridge116 transmits the data frame to the monitoring circuit 128.

At operation 406, the communication bridge 116 receives the data framefrom the monitoring circuit 128 (when the communication bridge 116initially transmitted the data frame to the monitoring circuit 122).Alternatively, in some examples, the communication bridge 116 receivesthe data frame from the monitoring circuit 122 (when the communicationbridge 116 initially transmitted the data frame to the monitoringcircuit 128).

At operation 408, the communication bridge 116 determines whether afault has been reported in the received data frame. In at least someexamples, the communication bridge 116 determines whether a fault hasbeen reported in the received data frame by examining one or more databits of the data frame to determine whether the data bits have been setto a value of logical 1. For example, in at least one implementation,the communication bridge 116 examines SOF data bits of one or more bytesof the data frame other than a first byte of the data frame to determinewhether the data bits have been set to a value of logical 1. In someexamples, the communication bridge 116 determines that a fault exists inthe system 100 when one examined bit has been set to a value oflogical 1. In other examples, the communication bridge 116 determinesthat a fault exists in the system 100 when more than one examined bithas been set to a value of logical 1. When a fault has not been reportedin the received data frame, the method proceeds to operation 410. When afault has been reported in the received data frame, the method proceedsto operation 412.

At operation 410, the communication bridge 116 transmits data receivedin the received data frame to the microcontroller 118 and waits toreceive new data (e.g., such as by returning to operation 402). Atoperation 412, the communication bridge 116 generates the fault outputsignal and transmits the fault output signal to the microcontroller 118.The communication bridge 116 further transmits data received in thereceived data frame to the microcontroller 118, such as by returning tothe operation 410.

Turning now to FIG. 5, a flowchart of an illustrative method 500 offault detection is shown. In at least some examples, the method 500 isimplemented at least partially by the communication bridge 116 of thesystem 100 of FIG. 1. Accordingly, reference may be made to at leastsome components and/or signals of the system 100 in describing themethod 500. In at least some examples, the method 500 is a method forfault detection when the microcontroller 118 is in a low-power state.When the microcontroller 118 is in the low-power state the communicationbridge 116 does not receive data from the microcontroller 118 forinclusion in a data frame, as described above with respect to the method400 of FIG. 4. Instead, when the microcontroller 118 is in the low-powerstate, the fault detection is performed, in at least some examples, viaa heartbeat tone and/or a fault tone.

At operation 502, the communication bridge 116 generates and outputs aheartbeat tone. The heartbeat tone, in at least some examples, is asignal having a predetermined pattern of signal pulses.

At operation 504, the communication bridge 116 determines whether theheartbeat tone has been received. Receipt of the heartbeat tone by thecommunication bridge 116 indicates that a fault is not present in thesystem 100. When the heartbeat tone is received, the method 500 returnsto operation 502. When the heartbeat tone is not received, the method500 proceeds to operations 506.

At operation 506, the communication bridge 116 determines whether afault tone has been received. The heartbeat tone, in at least someexamples, is another signal having a different predetermined pattern ofpulses. Receipt of the fault tone by the communication bridge 116indicates that a fault is present in the system 100. When the fault toneis received, the method 500 proceeds to operation 510. When the faulttone is not received, the method 500 proceeds to operations 508.

At operation 508, the communication bridge 116 determines whether apredetermined period of time has passed since the heartbeat tone wassent at operation 502. When the predetermined period of time has passed(e.g., exceeded a permitted threshold), or alternatively, when acountdown timer begun when the heartbeat tone was sent at operation 502has expired, the communication bridge 116 determines that a fault existsin the system 100. When the communication bridge 116 determines atoperation 508 that a fault exists in the system 100, the method 500proceeds to operation 510. When the predetermined period of time has notpassed, the method 500 returns to operation 504.

At operation 510, the communication bridge 116 generates and outputs thetrigger signal. The trigger signal, in at least some examples, causesthe power management component 120 to cause the microcontroller 118 toexit the low-power state (e.g., either a sleep mode or a shutdown mode).

At operation 512, which in some examples is performed concurrently withoperation 510, the communication bridge 116 generates and outputs thefault output signal. The fault output signal, in at least some examples,informs the microcontroller 118 that a fault has been detected in thesystem 100.

In at least some examples, the operation 502, the operation 504, and theoperation 508 are omitted such that the method 500 begins with operation506, remains at operation 506 until the “Yes” condition is met, and thenproceeds to operation 510. Such an implementation of the method 500occurs when, for example, the communication bridge 116 is in a low-poweror shutdown mode. In these examples, the communication bridge 116 doesnot generate and output the heartbeat tone and ignores receivedheartbeat tones. Instead, in these modes the communication bridge 116 iswoken on receipt of the fault tone.

Turning now to FIG. 6, a flowchart of an illustrative method 600 offault detection is shown. In at least some examples, the method 600 isimplemented at least partially by one or more of the monitoring circuit122, the monitoring circuit 124, the monitoring circuit 126, or themonitoring circuit 128 of the system 100 of FIG. 1. Accordingly,reference may be made to at least some components and/or signals of thesystem 100 in describing the method 600. Thus, while the method 600 willbe described with respect to the monitoring circuit 122, the method 600is equally applicable to the monitoring circuit 124, the monitoringcircuit 126, and the monitoring circuit 128. In at least some examples,the method 600 is a method for fault detection via a communication dataframe. The fault detection is performed, in at least some examples,without modifying a structure of the data frame. For example, the faultdetection is performed in some implementations without adding additionaldata bits and/or bytes to the data frame for the purpose of performingthe fault detection and/or notification associated with the faultdetection. In other implementations, one or more additional data bitsand/or bytes are added to the data frame to facilitate the faultdetection having a greater amount of detail regarding a detected fault(e.g., a nature of the fault, a location or relative/approximatelocation of the fault, etc.).

At operation 602, a data frame is received from a previous device. Inthe context of the monitoring circuit 122, the data frame is receivedfrom the communication bridge 116. In some examples, the data frame isaddressed to the monitoring circuit 122 and/or includes data directed tothe monitoring circuit 122. In such examples, after receiving the dataframe, the monitoring circuit 122 performs one or more actions relatedto the data frame being addressed to the monitoring circuit 122 and thescope of these actions is not limited herein. In at least some examples,processing the data frame includes the monitoring circuit 122 readingdata from the data frame. In other examples, processing the data frameincludes the monitoring circuit 122 creating a new data frame (e.g., aresponse frame).

At operation 604, the monitoring circuit 122 determines whether a faultexists in the system 100. In at least some examples, the monitoringcircuit 122 performs monitoring of one or more components of the system100 (e.g., such as the component 108) to determine whether a faultexists with the monitored component(s). When the monitoring circuit 122determines that no fault exists in the system 100, the method 600proceeds to operation 606. When the monitoring circuit 122 determinesthat a fault exists in the system 100, the method 600 proceeds tooperation 608.

At operation 606, the monitoring circuit 122 forwards the data framefrom operation 602 to a next device. In the context of the monitoringcircuit 122, when the data frame is a command frame, the data frame isforwarded (e.g., transmitted) to the monitoring circuit 124. Further inthe context of the monitoring circuit 122, when the data frame is aresponse frame, the data frame is forwarded (e.g., transmitted) to thecommunication bridge 116.

At operation 608, the monitoring circuit 122 modifies the data frame toindicate the presence of the fault in the system 100. In at least someexamples, modifying the data frame includes setting one or more databits of the data frame to a value of logical 1. The data bits are, in atleast some implementations, SOF data bits of one or more bytes of thedata frame. For example, the SOF data bits are SOF data bits of one ormore bytes of the data frame other than a first byte of the data frame.Setting the one or more data bits, in at least some examples, comprisesperforming a logical OR operation between the data bit(s) being set anda value of logical 1. In other examples, modifying the data frameincludes modifying the content of one or more bytes of the data frame(e.g., such as to indicate that a fault exists, indicate a nature of afault, indicate a location of a fault, etc.).

At operation 610, the monitoring circuit 122 forwards the modified dataframe to a next device. In at least some examples, the forwarding isperformed in a manner substantially the same as operation 606.

Turning now to FIG. 7, a flowchart of an illustrative method 700 isshown. In at least some examples, the method 700 is implemented at leastpartially by one or more of the monitoring circuit 122, the monitoringcircuit 124, the monitoring circuit 126, or the monitoring circuit 128of the system 100 of FIG. 1. Accordingly, reference may be made to atleast some components and/or signals of the system 100 in describing themethod 700. Thus, while the method 700 will be described with respect tothe monitoring circuit 122, the method 700 is equally applicable to themonitoring circuit 124, the monitoring circuit 126, and the monitoringcircuit 128. In at least some examples, the method 700 is a method forfault detection when the microcontroller 118 is in a low-power state.When the microcontroller 118 is in the low-power state the communicationbridge 116 does not receive data from the microcontroller 118 forinclusion in a data frame, as described elsewhere herein, thus themonitoring circuit 122 does not receive a data frame such as describedabove with respect to the method 600 of FIG. 6. Instead, when themicrocontroller 118 is in the low-power state, the fault detection isperformed, in at least some examples, via a heartbeat tone and/or afault tone.

At operation 702, the monitoring circuit 122 determines whether aheartbeat tone has been received. The heartbeat tone, in at least someexamples, is a signal having a predetermined pattern of pulses. Theheartbeat tone is received, in at least some examples, from thecommunication bridge 116. When the heartbeat tone has not been received,the method 700 proceeds to operation 703. When the heartbeat tone hasbeen received, the method 700 proceeds to operation 704.

At operation 703, the monitoring circuit 122 determines whether apredetermined period of time has been exceeded since a last heartbeattone was received. The period of time is, in some examples, about 1second when heartbeat tones are transmitted about every 400 millisecondsin the system 100. When the period of time has not been exceeded, themethod 700 returns to the operation 702. When the period of time hasbeen exceeded, the method 700 proceeds to operation 706.

At operation 704, the monitoring circuit 122 determines whether a faultexists in the system 100. In at least some examples, the monitoringcircuit 122 performs monitoring of one or more components of the system100 (e.g., such as the component 108) to determine whether a faultexists with the monitored component(s). When the monitoring circuit 122determines that no fault exists with the monitored component(s), themethod 700 proceeds to operation 706. When the monitoring circuit 122determines that a fault exists in the system 100, the method 700proceeds to operation 708.

At operation 706, the monitoring circuit 122 generates and transmits theheartbeat tone to a next device. In the context of the monitoringcircuit 122, the heartbeat tone is forwarded (e.g., transmitted) to themonitoring circuit 124. In at least some examples in which acommunication coupling in the system 100 is broken, such as between themonitoring circuit 122 and the monitoring circuit 124, the next devicethat receives the heartbeat tone is the communication bridge 116.

At operation 708, the monitoring circuit 122 generates a fault tone. Thefault tone, in at least some examples, is a signal having anotherpredetermined pattern of pulses. In some examples, the predeterminedpattern of pulses is specific to the monitoring circuit 122. In otherexamples, the predetermined pattern of pulses of the fault tone isspecific to a type or nature of a fault. In yet other examples, thepredetermined pattern of pulses is specific to a relative or approximatelocation of a fault.

At operation 710, the monitoring circuit 122 transmits the fault tone toa next device. In at least some examples, the transmitting is performedin a manner substantially the same as operation 706.

In at least some implementations of the method 700, operation 702,operation 703, and operation 706 are omitted from the method 700. Suchan implementation occurs, in some examples, when both the communicationbridge 116 and the microcontroller 118 are in a low-power state or sleepmode such that the monitoring circuit 122 does not receive a data frameor a heartbeat tone from the communication bridge 116 but retains anability to timely report a fault occurring in the system 100.

While the operations of the various methods described herein have beendiscussed and labeled with numerical reference, in various examples, themethods include additional operations that are not recited herein. Insome examples, any one or more of the operations recited herein includeone or more sub-operations. In some examples, any one or more of theoperations recited herein is omitted. In some examples, any one or moreof the operations recited herein is performed in an order other thanthat presented herein (e.g., in a reverse order, substantiallysimultaneously, overlapping, etc.). Each of these alternatives isintended to fall within the scope of the present disclosure.

Turning now to FIG. 8, a diagram of an illustrative state machine 800 isshown. In at least some examples, the state machine 800 is implementedby a communication bridge in a system, such as the communication bridge116 of the system 100 of FIG. 1. The communication bridge implements thestate machine 800 to determine whether a fault exists in the system. Inat least some examples, the state machine 800 includes a state 802, astate 804, a state 806, and a state 808.

At state 802, the communication bridge monitors to determine whether adata frame (e.g., a communication data frame) has been received. In atleast some examples, the data frame is received from a monitoringcircuit, such as the monitoring circuit 122 of the system 100. The dataframe, in at least some examples, includes a data portion and anoverhead portion. The overhead portion includes one or more SOF databits. The state machine 800 remains at state 802 until a data frame isreceived, after which the state machine 800 transitions to state 804.

At state 804, the communication bridge determines whether fault statusbits of the data frame are set. The fault status bits being setindicates, in at least some examples, a fault in the system, asdiscussed in greater detail elsewhere herein. In at least some examples,the fault status bits include one or more SOF data bits, as discussed ingreater detail elsewhere herein. In other examples, the fault statusbits include one or more other data bits of the data frame. When faultstatus bits of the data frame are set, the state machine 800 transitionsto state 806. When fault status bits of the data frame are not set, thestate machine 800 transitions to state 808.

At state 806, the communication bridge asserts a fault signal. The faultsignal is provided, in at least some examples, to the microcontroller toinform the microcontroller of the fault in the system. After assertingthe fault signal, the state machine 800 transitions to state 808.

At state 808, the communication bridge forwards and/or transmits thedata portion of the received data frame to a microcontroller, such asthe microcontroller 118 of the system 100. In this way, both data andthe indication of the fault in the system are provided in the same dataframe, eliminating a need for a separate communication interface orcoupling for reporting fault information. Including the data and theindication of the fault in the system in the same data frame, in atleast some examples, reduces a bill of materials associated withimplementing the system, reducing a cost of implementing the system.

Turning now to FIG. 9, a diagram of an illustrative state machine 900 isshown. In at least some examples, the state machine 900 is implementedby a communication bridge in a system, such as the communication bridge116 of the system 100 of FIG. 1. The communication bridge implements thestate machine 900 to determine whether a fault exists in the system. Inat least some examples, the state machine 900 includes a state 902, astate 904, and a state 906.

At state 902, the communication bridge monitors to determine whether afault exists in the system. The state machine 900 remains at state 902until a data frame is received, after which the state machine 900transitions to state 904. In at least some examples, the state machine900 determines that the fault exists when the communication bridgeitself detects a fault, when the communication bridge receives a faulttone from another device, or when the communication bridge does notreceive a heartbeat tone for a predetermined period of time or within anexpected time period. In at least some examples, the fault tone and/orthe heartbeat tone are received, or would be received, by thecommunication bridge from a monitoring circuit. In some examples, as anelement of monitoring to determine whether a fault exists in the system,the communication bridge generates and transmits a heartbeat tone to amonitoring circuit.

At state 904, the communication bridge asserts a trigger signal. Whenthe communication bridge implements the state machine 900, in at leastsome examples, a microcontroller coupled to the communication bridge isin a shutdown or powered-down mode and the communication bridge is in asleep mode (e.g., a low-power mode). Generally, the shutdown mode, thesleep mode, and the low-power mode are collectively referred to asreduced power modes. In at least some examples, the trigger signalcauses the microcontroller to exit the reduced-power mode. In someexamples, the trigger signal causes the microcontroller to exit thereduced-power mode by causing a power management component to provide asupply voltage to the microcontroller.

At state 906, the communication bridge asserts a fault signal. The faultsignal is provided, in at least some examples, to the microcontroller toinform the microcontroller of the fault in the system. After assertingthe fault signal, the state machine 900 transitions back to state 902.

Turning now to FIG. 10, a diagram of an illustrative state machine 1000is shown. In at least some examples, the state machine 1000 isimplemented by a communication bridge in a system, such as thecommunication bridge 116 of the system 100 of FIG. 1. The communicationbridge implements the state machine 1000 to determine whether a faultexists in the system. In at least some examples, the state machine 1000includes a state 1002, a state 1004, and a state 1006.

At state 1002, the communication bridge is in a shutdown state. In theshutdown state, the communication bridge consumes less power than whennot in the shutdown state. The state machine 1000 remains at state 1002until a fault tone is received, after which the state machine 1000transitions to state 1004. In at least some examples, the fault tone isreceived, or would be received, by the communication bridge from amonitoring circuit. The communication bridge, in some examples, ignoresother received signals, such as a heartbeat tone, while operating atstate 1002. Receiving the fault tone while in the shutdown mode, in atleast some examples, causes the communication bridge to partially wakefrom the shutdown mode, such as to enter a validate mode.

At state 1004, the communication bridge validates the received faulttone. For example, the communication bridge compares the received faulttone to an expected pattern for the fault tone. When the fault tone isvalidated, the state machine 1000 transitions to state 1006. When thefault tone is not validated, the state machine 1000 transitions back tostate 1002.

At state 1006, the communication bridge asserts a fault signal. Thefault signal is provided, in at least some examples, to themicrocontroller to inform the microcontroller of the fault in thesystem. After asserting the fault signal, the state machine 1000transitions back to state 1002.

Turning now to FIG. 11, a diagram of an illustrative state machine 1100is shown. In at least some examples, the state machine 1100 isimplemented at least partially by one or more of the monitoring circuit122, the monitoring circuit 124, the monitoring circuit 126, or themonitoring circuit 128 of the system 100 of FIG. 1. Thus, while thestate machine 1100 will be described with respect to the monitoringcircuit 122, the state machine 1100 is equally applicable to themonitoring circuit 124, the monitoring circuit 126, and the monitoringcircuit 128. The monitoring circuit implements the state machine 1100 todetermine whether a fault exists in the system. In at least someexamples, the state machine 1100 includes a state 1102, a state 1104, astate 1106, and a state 1108.

At state 1102, the monitoring circuit forms a data frame. In someexamples, forming the data frame comprises reading data from a registerand generating the data frame including the data read from the register,as well as one or more additional data elements. In other examples,forming the data frame comprises receiving a data frame and forwardingthe received data frame. After forming the data frame, the state machine1100 transitions to state 1104.

At state 1104, the monitoring circuit determines whether a fault isdetected. The fault is, for example, a fault with a component monitoredby the monitoring circuit. In at least some examples, the component isan energy storage element, such as a battery of a hybrid or electricvehicle (e.g., such as a component of a hybrid or electric vehiclepowertrain or power sub-system). When a fault is not detected, the statemachine 1100 transitions to state 1106. When a fault is detected, thestate machine 1100 transitions to state 1108.

At state 1106, the monitoring circuit transmits the data frame. In someexamples, the data frame is transmitted to another monitoring circuitthat itself implements the state machine 1100 or another state machinesubstantially similar to the state machine 1100. In other examples, thedata frame is transmitted to a communication bridge, such as thecommunication bridge 116 of the system 100. After transmitting the dataframe, in at least some examples, the state machine 1100 returns to thestate 1102.

At state 1108, the monitoring circuit sets a fault status in the dataframe. In at least some examples, setting the fault status comprisesperforming a logical OR operation between data bit(s) being set and avalue of logical 1. In other examples, setting the fault status includesmodifying the content of one or more bytes of the data frame (e.g., suchas to indicate that a fault exists, indicate a nature of a fault,indicate a location of a fault, etc.). After setting the fault status,the state machine 1100 transitions to the state 1106.

Turning now to FIG. 12, a diagram of an illustrative state machine 1200is shown. In at least some examples, the state machine 1200 isimplemented at least partially by one or more of the monitoring circuit122, the monitoring circuit 124, the monitoring circuit 126, or themonitoring circuit 128 of the system 100 of FIG. 1. Thus, while thestate machine 1200 will be described with respect to the monitoringcircuit 122, the state machine 1200 is equally applicable to themonitoring circuit 124, the monitoring circuit 126, and the monitoringcircuit 128. The monitoring circuit implements the state machine 1200 todetermine whether a fault exists in the system. In at least someexamples, the state machine 1200 includes a state 1202, a state 1204,and a state 1206.

At state 1202, the monitoring circuit monitors to determine whether afault exists. The fault is, for example, a fault with a componentmonitored by the monitoring circuit. In at least some examples, thecomponent is an energy storage element, such as a battery of a hybrid orelectric vehicle (e.g., such as a component of a hybrid or electricvehicle powertrain or power sub-system). A fault exists when themonitoring device detects a fault with a monitored component, when themonitoring device receives a fault tone from another device, or when themonitoring device does not receive a heartbeat tone for a predeterminedperiod of time or within an expected time period. In at least someexamples, the fault tone and/or the heartbeat tone are received, orwould be received, by the monitoring device from another monitoringcircuit or a communication bridge. When a fault is not detected, thestate machine 1200 transitions to state 1206. When a fault is detected,the state machine 1200 transitions to state 1204.

At state 1204, the monitoring circuit generates and transmits a faulttone. The fault tone, in at least some examples, is a signal havinganother predetermined pattern of pulses. In some examples, thepredetermined pattern of pulses is specific to the monitoring circuitgenerating the fault tone. In other examples, the predetermined patternof pulses of the fault tone is specific to a type or nature of a fault.In other examples, the predetermined pattern of pulses of the fault toneis specific to a type or nature of a fault. In yet other examples, thepredetermined pattern of pulses is specific to a relative or approximatelocation of a fault. In some examples, the fault tone is transmitted toanother monitoring circuit. In other examples, the fault tone istransmitted to a communication bridge. After generating and transmittingthe fault tone, in at least some examples, the state machine 1200transitions to the state 1202.

At state 1206, the monitoring circuit generates and outputs a heartbeattone. The heartbeat tone, in at least some examples, is a signal havinga predetermined pattern of pulses. In some examples, the heartbeat toneis transmitted to another monitoring circuit. In other examples, theheartbeat tone is transmitted to a communication bridge. Aftertransmitting the heartbeat tone, the state machine 1200 transitions backto the state 1202.

In the foregoing discussion, the terms “including” and “comprising” areused in an open-ended fashion, and thus should be interpreted to mean“including, but not limited to . . . .” The term “couple” is usedthroughout the specification. The term may cover connections,communications, or signal paths that enable a functional relationshipconsistent with the description of the present disclosure. For example,if device A generates a signal to control device B to perform an action,in a first example device A is coupled to device B, or in a secondexample device A is coupled to device B through intervening component Cif intervening component C does not substantially alter the functionalrelationship between device A and device B such that device B iscontrolled by device A via the control signal generated by device A. Adevice that is “configured to” perform a task or function may beconfigured (e.g., programmed and/or hardwired) at a time ofmanufacturing by a manufacturer to perform the function and/or may beconfigurable (or re-configurable) by a user after manufacturing toperform the function and/or other additional or alternative functions.The configuring may be through firmware and/or software programming ofthe device, through a construction and/or layout of hardware componentsand interconnections of the device, or a combination thereof.Furthermore, a circuit or device that is said to include certaincomponents may instead be configured to couple to those components toform the described circuitry or device. For example, a structuredescribed as including one or more semiconductor elements (such astransistors), one or more passive elements (such as resistors,capacitors, and/or inductors), and/or one or more sources (such asvoltage and/or current sources) may instead include only thesemiconductor elements within a single physical device (e.g., asemiconductor die and/or integrated circuit (IC) package) and may beconfigured to couple to at least some of the passive elements and/or thesources to form the described structure either at a time of manufactureor after a time of manufacture, for example, by an end-user and/or athird-party.

While certain data elements of the present disclosure are defined asbeing “set” by those data elements being caused to have a value oflogical 1, in other examples operation is reversed such that setting thedata elements causes the data elements to have a value of logical 0.Unless otherwise stated, “about,” “approximately,” or “substantially”preceding a value means +/−10 percent of the stated value.

The above discussion is meant to be illustrative of the principles andvarious examples of the present disclosure. Numerous variations andmodifications will become apparent to those skilled in the art once theabove disclosure is fully appreciated. It is intended that the presentdisclosure be interpreted to embrace all such variations andmodifications.

What is claimed is:
 1. A circuit, comprising: a microcontroller; and acommunication bridge coupled to the microcontroller and configured toimplement a state machine comprising: a first state configured toreceive a data frame comprising data; a second state configured todetermine whether a system fault is indicated in the data frame, whereinthe first state transitions to the second state when the data frame isreceived; a third state configured to assert a fault signal when thesystem fault is indicated in the data frame, wherein the second statesto the third state when the system fault is indicated in the data frame;and a fourth state configured to transmit the data from the data frameto the microcontroller, wherein the third state transitions to thefourth state after asserting the fault signal.
 2. The circuit of claim1, wherein the communication bridge transmits the fault signal to themicrocontroller.
 3. The circuit of claim 1, wherein the system fault isindicated in a start of frame bit of the data frame.
 4. The circuit ofclaim 3, wherein the system fault is indicated in start of frame bits ofa plurality of bytes of the data frame.
 5. The circuit of claim 4,wherein the system fault is indicated in the data frame when a majorityof the start of frame bits of the plurality of bytes of the data frameis asserted.
 6. The circuit of claim 1, further comprising a powermanagement component coupled to the communication bridge and themicrocontroller.
 7. The circuit of claim 1, further comprising a powermanagement component coupled to the microcontroller and thecommunication bridge, wherein the communication bridge is configured toimplement a second state machine comprising: a fifth state configured tomonitor for the system fault when the microcontroller is in areduced-power state; a sixth state configured to assert a trigger signaland transmit the trigger signal to the power management component,wherein the trigger signal causes the power management component toremove the microcontroller from the reduced-power state, and wherein thefifth state transition to the sixth state when the communication bridgedetermines that a fault exists; and a seventh state configured to assertthe fault signal, wherein the sixth state transitions to the seventhstate after asserting the trigger signal.
 8. The circuit of claim 7,wherein the communication bridge determines that the fault exists whenthe communication bridge detects a fault, receives a fault tone, or doesnot receive a heartbeat tone for a predetermined period of time.
 9. Acircuit, comprising: a register; and a monitoring circuit coupled to theregister and configured to implement a state machine comprising: a firststate configured to generate a data frame including at least some datafrom the register; a second state configured to determine a system faultstatus, wherein the first state transitions to the second state aftergenerating the data frame; a third state configured to set a faultstatus indication of the data frame when a fault exists in the system,wherein the second state transitions to the third state when themonitoring circuit detects a fault; and a fourth state configured totransmit the data frame to a next device, wherein the second statetransitions to the fourth state when the monitoring circuit does notdetect a fault, and wherein the third state transitions to the fourthstate after setting the fault status indication of the data frame. 10.The circuit of claim 9, wherein the fault status is indicated in a startof frame bit of the data frame.
 11. The circuit of claim 10, wherein thefault status is indicated in start of frame bits of a plurality of bytesof the data frame.
 12. The circuit of claim 11, wherein the fault statusis indicated in the data frame when a majority of the start of framebits of the plurality of bytes of the data frame is asserted.
 13. Thecircuit of claim 9, wherein the monitoring circuit is configured totransmit the data frame to a communication controller that detects thefault status indication and generates a fault signal in response todetection of the fault status indication.
 14. The circuit of claim 9,wherein the monitoring circuit is configured to implement a second statemachine comprising: a fifth state configured to monitor for the fault; asixth state configured to generate and transmit a fault tone, whereinthe fifth state transition to the sixth state when the monitoringcircuit determines that a fault exists; and a seventh state configuredto generate and transmit a heartbeat tone, wherein the fifth statetransitions to the seventh state when the monitoring circuit determinesthat no fault exists.
 15. The circuit of claim 14, wherein themonitoring circuit generates and transmits the fault tone when themonitoring circuit detects a fault, receives a fault tone, or does notreceive a heartbeat tone for a predetermined period of time.
 16. Asystem, comprising: a microcontroller; an energy storage element; amonitoring circuit coupled to the energy storage element and configuredto: determine whether a fault associated with the energy storage elementis present; generate an indication of the fault when the fault with theenergy storage element is present; and transmit the indication of thefault; and a communication bridge configured to: receive the indicationof the fault; and assert a fault signal and transmit the fault signal tothe microcontroller.
 17. The system of claim 16, wherein the indicationof the fault is a fault tone.
 18. The system of claim 17, wherein thecommunication bridge is in a reduced power mode and the fault tone wakesthe communication bridge to cause the communication bridge to assert thefault signal and a trigger signal.
 19. The system of claim 18, whereinthe microcontroller is in a reduced power mode, and wherein the triggersignal causes the microcontroller to wake from the reduced power mode.20. The system of claim 16, wherein the indication of the fault is aplurality of start of frame bits of a communication frame beingasserted, and wherein the communication frame is generated by themonitoring circuit and includes data for transmission to themicrocontroller from the monitoring circuit.